package com.sky.service;


import com.sky.dto.OrdersCancelDTO;
import com.sky.dto.OrdersConfirmDTO;
import com.sky.dto.OrdersDTO;
import com.sky.dto.OrdersPageQueryDTO;
import com.sky.result.PageResult;
import com.sky.vo.OrderSubmitVO;
import com.sky.vo.OrderVO;

import java.util.List;

public interface OrderService {

    /**
     * 用户下单
     * @param ordersDTO
     * @return
     */
    OrderSubmitVO add(OrdersDTO ordersDTO);

    /**
     * 支付
     * @param orderId
     */
    void pay(String orderId);

    void reminder(Long orderId);

    /**
     * 分页查询订单
     * @param ordersPageQueryDTO
     * @return
     */
    PageResult getOrderList(OrdersPageQueryDTO ordersPageQueryDTO);

    /**
     * 获取订单详情
     * @param orderId
     * @return
     */
    OrderVO getOrderDetail(Long orderId);

    /**
     *
     * 分页查询订单
     * @param ordersPageQueryDTO
     * @return
     */
    PageResult list(OrdersPageQueryDTO ordersPageQueryDTO);

    void updateStatus(OrdersConfirmDTO ordersConfirmDTO);

    void cancelOrder(OrdersCancelDTO ordersCancelDTO);

    void rejectOrder(OrdersConfirmDTO ordersConfirmDTO);
}
